package pos.dominio;

public class Reserva extends Carta{
	
	//Jugador que posee la Carta de Reserva
	/** @uml.property name="idJugador" */
	private Integer idJugador;
	/** Getter of the property <tt>idJugador</tt> * @return  Returns the idJugador. * @uml.property  name="idJugador" */
	public Integer getIdJugador(){
		return this.idJugador;
	}
	/** Setter of the property <tt>idJugador</tt> * @param idJugador The idJugador to set. * @uml.property  name="idJugador" */
	public void setIdJugador(Integer idJ){
		this.idJugador = idJ;
	}
	
	//Mazo Central que reserva la Carta, si es null NO esta utilizada
	/** @uml.property name="idMazoCentral" */
	private Integer idMazoCentral;
	/** Getter of the property <tt>idMazoCentral</tt> * @return  Returns the idMazoCentral. * @uml.property  name="idMazoCentral" */
	public Integer getIdMazoCentral(){
		return this.idMazoCentral;
	}
	/** Setter of the property <tt>idMazoCentral</tt> * @param idMazoCentral The idMazoCentral to set. * @uml.property  name="idMazoCentral" */
	public void setIdMazoCentral(Integer idMc){
		this.idMazoCentral = idMc;
	}
	
	//Constructor
	public Reserva(String nombre, Integer cantidad, Integer idJugador){
		super(nombre, cantidad);
		this.idJugador = idJugador;
		this.idMazoCentral = -1;	
	}

	//La igualdad se fija por el idJugador
	@Override
	public int hashCode(){
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result	+ ((idJugador == null) ? 0 : idJugador.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj){
		if (this == obj)
			return true;
		if(!super.equals(obj))
			return false;
		if(getClass() != obj.getClass())
			return false;
		Reserva other = (Reserva) obj;
		if(idJugador == null) {
			if(other.idJugador != null)
				return false;
		}else if(!idJugador.equals(other.idJugador))
			return false;
		return true;
	}
	@Override
	public String toString(){
		return "Reserva: [idJugador = " + this.getIdJugador() + ", idMazoCentral = " + this.getIdMazoCentral() + "]";
	}
	@Override
	public Reserva clone(){
		Reserva copia = null;
		copia = (Reserva) super.clone();
		return copia;
	}
	public int compareTo(Reserva obj){
		return this.getIdJugador().compareTo(obj.getIdJugador());
	}

}
